package base;

import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;

import java.util.Date;

@Data
public class MqBaseModel<T> {

    /**
     * 业务键 用于rocketMQ控制台查看消费情况
     */
    private String key;

    /**
     * 发送消息来源，用于排查问题
     */
    private String source;

    /**
     * 发送时间
     */
    public String sendTime = DateUtil.now();

    /**
     * 重试次数
     */
    public Integer retryTimes = 0;

    /**
     * 消息内容
     */
    private T messageBody;

    public byte[] toJsonByte() {
        return JSONObject.toJSONBytes(this);
    }

    public String toJsonString() {
        return JSONObject.toJSONString(this);
    }

}
